package com.system.travel.common.exception;

/**
 * 错误码枚举
 *
 * @author lucas
 * @date 2024/01/01
 */
public enum ErrorCode {
    // 系统错误
    SYSTEM_ERROR(500, "系统错误"),
    PARAM_ERROR(400, "参数错误"),
    UNAUTHORIZED(401, "未登录或token已过期"),
    FORBIDDEN(403, "没有权限"),

    // 业务错误
    CAPTCHA_ERROR(1001, "验证码错误"),
    USERNAME_NOT_FOUND(1002, "用户名不存在"),
    PASSWORD_ERROR(1003, "密码错误"),
    USER_DISABLED(1004, "用户已被禁用"),
    USER_NOT_FOUND(1005, "用户不存在"),
    USERNAME_EXISTS(1006, "用户名已存在"),

    // 数据操作错误
    DATA_NOT_FOUND(2001, "数据不存在"),
    DATA_EXISTS(2002, "数据已存在"),
    DATA_ADD_ERROR(2003, "数据添加失败"),
    DATA_UPDATE_ERROR(2004, "数据更新失败"),
    DATA_DELETE_ERROR(2005, "数据删除失败"),
    
    // 文件操作错误
    FILE_UPLOAD_ERROR(3001, "文件上传失败"),
    FILE_DELETE_ERROR(3002, "文件删除失败"),
    FILE_DOWNLOAD_ERROR(3003, "文件下载失败"),
    FILE_TYPE_ERROR(3004, "文件类型错误"),
    FILE_SIZE_ERROR(3005, "文件大小超限"),

    // 业务验证错误
    VERIFY_ERROR(4001, "验证失败"),
    STATUS_ERROR(4002, "状态错误"),
    OPERATION_ERROR(4003, "操作失败");

    private final int code;
    private final String message;

    ErrorCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
} 